//index.js
Page({
  data: {
    showAuthDialog: false
  },
  
  onLoad: function() {
    // 页面加载时的初始化操作
    this.checkCloudStatus();
  },
  
  // 检查云开发状态
  checkCloudStatus: function() {
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力');
      return;
    }
    
    // 已在app.js中初始化云开发
  },
  
  // 跳转到入区申请页面
  navigateToApply: function() {
    wx.navigateTo({
      url: '/pages/apply/apply'
    });
  },
  
  // 跳转到入区审批页面，需要先验证权限
  navigateToApproval: function() {
    const that = this;
    
    // 获取用户openid
    wx.cloud.callFunction({
      name: 'getOpenid',
      success: res => {
        const openid = res.result.openid;
        
        // 检查用户是否已认证
        wx.cloud.database().collection('authorized_accounts')
          .where({
            openid: openid
          })
          .get()
          .then(res => {
            if (res.data.length > 0) {
              // 用户已认证，跳转到审批页面
              wx.navigateTo({
                url: '/pages/approval/approval'
              });
            } else {
              // 用户未认证，提示无权限
              wx.showToast({
                title: '无权限查看',
                icon: 'none',
                duration: 2000
              });
            }
          })
          .catch(err => {
            console.error('查询认证信息失败', err);
            wx.showToast({
              title: '查询失败，请重试',
              icon: 'none',
              duration: 2000
            });
          });
      },
      fail: err => {
        console.error('获取openid失败', err);
        wx.showToast({
          title: '获取信息失败，请重试',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },
  
  // 显示身份认证确认弹窗
  showAuthConfirm: function() {
    this.setData({
      showAuthDialog: true
    });
  },
  
  // 隐藏身份认证确认弹窗
  hideAuthDialog: function() {
    this.setData({
      showAuthDialog: false
    });
  },
  
  // 阻止冒泡事件
  stopPropagation: function(e) {
    // 阻止事件冒泡，避免点击弹窗内容时关闭弹窗
  },
  
  // 提交身份认证
  submitAuth: function() {
    const that = this;
    
    // 获取用户信息
    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: (res) => {
        const userInfo = res.userInfo;
        
        // 获取用户openid
        wx.cloud.callFunction({
          name: 'getOpenid',
          success: res => {
            const openid = res.result.openid;
            const db = wx.cloud.database();
            
            // 检查用户是否已认证
            db.collection('authorized_accounts')
              .where({
                openid: openid
              })
              .get()
              .then(res => {
                if (res.data.length > 0) {
                  // 用户已认证
                  wx.showToast({
                    title: '已认证',
                    icon: 'success',
                    duration: 2000
                  });
                  that.hideAuthDialog();
                } else {
                  // 用户未认证，提交认证信息
                  db.collection('authorized_accounts').add({
                    data: {
                      openid: openid,
                      nickName: userInfo.nickName,
                      avatarUrl: userInfo.avatarUrl,
                      authTime: db.serverDate()
                    },
                    success: res => {
                      wx.showToast({
                        title: '认证成功',
                        icon: 'success',
                        duration: 2000
                      });
                      that.hideAuthDialog();
                    },
                    fail: err => {
                      console.error('提交认证信息失败', err);
                      wx.showToast(
                        {
                          title: '认证失败，请重试',
                          icon: 'none',
                          duration: 2000
                        }
                      );
                    }
                  });
                }
              })
              .catch(err => {
                console.error('查询认证信息失败', err);
                wx.showToast({
                  title: '查询失败，请重试',
                  icon: 'none',
                  duration: 2000
                });
              });
          },
          fail: err => {
            console.error('获取openid失败', err);
            wx.showToast({
              title: '获取信息失败，请重试',
              icon: 'none',
              duration: 2000
            });
          }
        });
      },
      fail: (err) => {
        console.error('获取用户信息失败', err);
        wx.showToast({
          title: '需要授权才能认证',
          icon: 'none',
          duration: 2000
        });
      }
    });
  }
})